#include "functions.h"
#include "ui_functions.h"

Functions::Functions(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Functions)
{
    ui->setupUi(this);
}

Functions::~Functions()
{
    delete ui;
}

void Functions::on_login_btn_clicked()
{
    loginDialog.exec();
}

void Functions::on_openFile_btn_clicked()
{
    // 1. 弹出文件对话框让用户选择文件
    QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("Text Files (*.txt);;All Files (*)"));
    if (fileName.isEmpty()) {
        return;
    }

    // 2. 读取文件内容
    QFile file(fileName);
    if (!file.open(QIODevice::ReadWrite | QIODevice::Text)) {
        QMessageBox::warning(this, tr("Error"), tr("Cannot open file: %1").arg(fileName));
        return;
    }
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextStream in(&file);
    in.setCodec(codec);
    QString fileContent = in.readAll();
    file.close();

    // 3. 创建QDialog作为临时窗口
    QDialog* dialog = new QDialog();
    dialog->setWindowTitle("File Content");

    // 4. 创建一个 QTextEdit 控件来显示文件内容
    QTextEdit *textEdit = new QTextEdit(dialog);
    textEdit->setPlainText(fileContent);
    textEdit->setReadOnly(true); // 设置为只读

    // 5. 创建布局并将textEdit添加到布局
    QVBoxLayout* layout = new QVBoxLayout(dialog);
    layout->addWidget(textEdit);
    dialog->setLayout(layout);

    // 设置窗口大小
    dialog->resize(600, 400); // 根据需要调整窗口大小

    // 显示对话框
    dialog->exec();
}


void Functions::on_musicPlayer_btn_clicked()
{
    musicPlayerDialog.show();
}

void Functions::on_openExeFile_btn_clicked()
{
    // 弹出文件选择对话框
    QString filePath = QFileDialog::getOpenFileName(
        this,                // 父窗口
        tr("Open Executable"), // 对话框标题
        QString(),            // 初始路径
        tr("Executable Files (*.exe);;All Files (*)") // 文件过滤器
    );

    // 检查用户是否选择了文件
    if (!filePath.isEmpty()) {
        // 创建 QProcess 对象
        QProcess *process = new QProcess(this);

        // 启动外部程序
        process->start(filePath);
    }
}
